home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / kiss-0.11 / kiss-0 / kiss / src / expandvars.c < prev    next >
C/C++ Source or Header  |  1995-03-23  |  670b  |  48 lines

  1. #include "kiss.h"
  2.  
  3. int expandvars (char *name, char *buf)
  4. {
  5.     char
  6.     varname [FILENAMELEN],
  7.     twobuf [2] = { 0, 0 };
  8.     register char
  9.     *env,
  10.     *cp;
  11.     register int
  12.     varfound = 0;
  13.  
  14.     cp = name;
  15.     *buf = '\0';
  16.     
  17.     while (*cp)
  18.     {
  19.     if (*cp == '$' && isupper (* (cp + 1)) &&
  20.         (cp > name || *(cp - 1) != '\\')
  21.        )
  22.     {
  23.         cp++;
  24.         varname [0] = '\0';
  25.         varfound = 1;
  26.         while (isupper (*cp))
  27.         {
  28.         twobuf [0] = *cp;
  29.         strcat (varname, twobuf);
  30.         cp++;
  31.         }
  32.         if ( (env = getenv (varname)) )
  33.         strcat (buf, env);
  34.         cp--;
  35.     }
  36.     else
  37.     {
  38.         twobuf [0] = *cp;
  39.         strcat (buf, twobuf);
  40.     }
  41.  
  42.     if (*cp)
  43.         cp++;
  44.     }
  45.  
  46.     return (varfound);
  47. }
  48.